package com.ssyt.yt1.day4;

/**
 * 从1~5之间，生成5个不重复的随机数
 * 
 * @author Administrator
 *
 */
public class GenerateNoRepeatNumber {

	/**
	 * 从1~5之间生成随机数
	 * 
	 * @return
	 */
	public static int generateRandomNumber() {
		// return new Random().nextInt(5) + 1;
		return (int) Math.ceil(Math.random() * 5);
	}

	/**
	 * 检查某个数在数组里面是否存在
	 * 
	 * @param number
	 * @param numbers
	 * @return 如果已存在返回false，如果不存在返回true
	 */
	public static boolean isRepeatNumber(int number, int[] numbers) {
		// flag为true，表示在数组里面不存在，可以添加
		boolean flag = true;
		for (int value : numbers) {
			if (number == value) {
				// flag为false，表示在数组里面已存在，不可以添加
				flag = false;
				break;
			}
		}
		return flag;
	}

	/**
	 * 数组打印
	 * 
	 * @param numbers
	 */
	public static void printArray(int[] numbers) {
		for (int value : numbers) {
			System.out.print(value + "、");
		}
	}

	/**
	 * 生成方法一
	 */
	public static void generateMethod1() {
		int[] numbers = new int[5];
		int i = 0;
		while (i < numbers.length) {
			int number = generateRandomNumber();
			if (isRepeatNumber(number, numbers)) {
				numbers[i++] = number;
			}
		}
		printArray(numbers);
	}

	/**
	 * 生成方法二
	 */
	public static void generateMethod2() {
		int[] numbers = new int[5];
		for (int i = 0; i < numbers.length; i++) {
			numbers[i] = generateRandomNumber();
			for (int j = 0; j < i; j++) {
				if (numbers[i] == numbers[j]) {
					i--;
					break;
				}
			}
		}
		printArray(numbers);
	}

	public static void main(String[] args) {
		// generateMethod1();
		generateMethod2();
	}
}
